package com.example.micro_property_springboot.service;

import com.example.micro_property_springboot.pojo.DTO.user.PasswordDTO;
import com.example.micro_property_springboot.pojo.DTO.user.PersonalDTO;
import com.example.micro_property_springboot.pojo.DTO.user.UserDTO;
import com.example.micro_property_springboot.pojo.SysUser;
import com.example.micro_property_springboot.pojo.VO.PageResult;
import com.example.micro_property_springboot.pojo.VO.Result;
import com.example.micro_property_springboot.pojo.VO.UserVO;

public interface UserService {
    /**
     * 登录
     */
    Result<UserVO> login(UserDTO user);

    /**
     * 注册
     */
    Result<Void> register(SysUser user);

    /**
     * 修改个人信息
     */
    Result<Void> updateUserPersonal(Long Id, PersonalDTO personalDTO);

    /**
     * 修改密码
     */
    Result<Void> updateUserPassword(Long Id, PasswordDTO passwordDTO);

    /**
     * 管理员审核注册
     */
    Result<Void> passUser(Long id);

    /**
     * 待审核的用户分页
     */
    Result<PageResult<UserVO>> pagePassUser(Integer pageNum,Integer pageSize);

    /**
     * 以审核通过的用户分页
     */
    Result<PageResult<UserVO>> pagePassedUser(Integer pageNum,Integer pageSize);

    /**
     * 查询所有用户
     */
    Result<PageResult<UserVO>> pageAllUser(Integer pageNum,Integer pageSize);

    /**
     * 添加用户
     */
    Result<Void> addUser(SysUser sysUser);

    /**
     * 删除用户
     */
    Result<Void> deleteUser(Long id);

}
